package com.kelvin.paopao.api;


import com.kelvin.paopao.api.responseBean.CommonListResponse;
import com.kelvin.paopao.api.responseBean.DateListModel;
import com.kelvin.paopao.api.responseBean.DatePersonModel;
import com.kelvin.paopao.api.responseBean.GoodDetailModel;
import com.kelvin.paopao.api.responseBean.OrderModel;
import com.kelvin.paopao.api.responseBean.PeisongModel;
import com.kelvin.paopao.api.responseBean.UserDetailModel;

import io.reactivex.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

/**
 * Created by MCK on 2017/5/16.
 */

public interface IOrderApi {
    /**
     * 发布活动
     *
     * @param type
     * @param item_title
     * @param oAddress
     * @param oSex
     * @param oPayMode
     * @param Istip
     * @param tipPrice
     * @param hours
     * @param IsJie
     * @param IsFriend
     * @param Remark
     * @param ordertype
     * @param userno
     * @param Img1
     * @param Img2
     * @param Img3
     * @return
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> publishDate(@Field("type") String type, @Field("item_title") String item_title,
                                               @Field("oAddress") String oAddress, @Field("oSex") String oSex,
                                               @Field("oPayMode") String oPayMode, @Field("Istip") String Istip,
                                               @Field("tipPrice") String tipPrice, @Field("hours") String hours,
                                               @Field("IsJie") String IsJie, @Field("IsFriend") String IsFriend,
                                               @Field("Remark") String Remark, @Field("ordertype") String ordertype,
                                               @Field("userno") String userno, @Field("Img1") String Img1,
                                               @Field("Img2") String Img2, @Field("Img3") String Img3,
                                               @Field("oAddressId") String oAddressId, @Field("oDate") String oDate);

    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<DateListModel>> getDate(@Field("type") String type,
                                                          @Field("ordertype") String ordertype, @Field("user_no")
                                                                  String user_no);


    /**
     * 报名
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> signup(@Field("type") String type,
                                          @Field("user_no") String user_no, @Field("id") String id);


    /**
     * 获取报名人
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<DatePersonModel>> getDatePerson(@Field("type") String type,
                                                                  @Field("id") String id);

    /**
     * 报名人确认
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> confirm(@Field("type") String type,
                                           @Field("id") String id, @Field("user_no") String user_no);

    /**
     * 报名取消
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> dateCancel(@Field("type") String type,
                                              @Field("id") String id, @Field("user_no") String user_no);

    /**
     * 我申请的邀约
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<DateListModel>> getMyAskDate(@Field("type") String type,
                                                               @Field("user_no") String user_no, @Field("oId") String oId);


    /**
     * 编辑个人详情
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> updateInfo(@Field("type") String type,
                                              @Field("user_id") String user_id, @Field("user_name") String user_name, @Field("user_sex") String user_sex, @Field("user_age") String user_age,
                                              @Field("user_qianming") String user_qianming, @Field("user_zhiye") String user_zhiye, @Field("user_tizhong") String user_tizhong, @Field("user_shengao")
                                                      String user_shengao, @Field("user_province") String user_province, @Field("user_city") String user_city, @Field("user_ganqing") String user_ganqing);


    /**
     * 获取商品详情
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<GoodDetailModel>> getGoodDetail(@Field("type") String type, @Field("sId") String sId
    );

    /**
     * 下单
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> takeorder(@Field("type") String type, @Field("sId") String sId
            , @Field("user_no") String user_no, @Field("aId") String aId, @Field("oNum") String oNum
            , @Field("oPayMode") String oPayMode, @Field("oRemarks") String oRemarks);


    /**
     * 我的订单
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<OrderModel>> getOrder(@Field("type") String type,
                                                        @Field("user_no") String user_no);

    /**
     * 配送列表
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<PeisongModel>> getPeisonList(@Field("type") String type,
                                                               @Field("user_lat") String user_lat, @Field("user_lng") String user_lng,
                                                               @Field("page_index") String page_index);

    /**
     * 报名配送
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> requestPeisong(@Field("type") String type,
                                                  @Field("user_no") String user_no, @Field("oId") String oId);

    /**
     * 报名名单
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<UserDetailModel>> getPeisongPerson(@Field("type") String type,
                                                                     @Field("oId") String oId);

    /**
     * 报名确认
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse> peisongConfirm(@Field("type") String type, @Field("user_no") String user_no,
                                                  @Field("oId") String oId);


    /**
     * 我的报名
     */
    @FormUrlEncoded
    @POST("Order.aspx")
    Observable<CommonListResponse<PeisongModel>> getMyRequestPeisong(@Field("type") String type,
                                                                     @Field("user_no") String user_no, @Field("oId") String oId);


}
